Skip to main content

Insights

This contains our observations on the network.

Mesh network

  1. When the root was restarted at the same time a node was sending data, root can miss some of the packets.
  • First half of the packet sequence is missing.
  • Second half is received

    This is handled by discarding partially received data

Root node memory capability

  • ESP32 and ESP32S3 have 512 KB of total memory where as ESP32S2 has 320KB of internal memory esp32 and esp32s3 esp32s2 memory

  • Also they mention that there is a limitation in the usbale memory capacity to 160KB (which slightly vary) (more details) disclaimer

  • The memory used by ESP32, ESP32S3 and ESP32S2 are compared by looking at the binary sizes. Acceleration sample size is taken as 1024 and the node information array size is varied to find the max possible number. Use of static variables, using the flag DMA_ATTR and changing the optimization flags in the menuconfig was tried out and didn't seem to make a change in the binary sizes. comparison table

    • ESP32 esp32 memory usage
    • ESP32S3 esp32s3 memory usage
    • ESP32S2 esp32s2 memory usage

Stack overflow errors due to insufficient stack size

  • We found some tasks throw this error and fail in both main function and in user created tasks (threads) via xTaskCreate. If the error was happening due to insufficient allocated stack size, that can be fixed by increasing the allocation in following manners.
    • If the function causing the error is placed in the main function or called by the main function the stack size can be increased by adding an entry for the ESP_MAIN_TASK_STACK_SIZE parameter in sdkconfig.defaults or changing the same variable from the menuconfig. main stack size
    • If the function causing the error is placed in a separate task, increase the value (which is in bytes) for usStackDepth in xTaskCreate function.

WiFi Router

  • Mesh did not work with one of the APs in Edgewood office.
  • With the dedicated router 'GQC Guest', it is working fine.